import { readFile, downloadTextFile, JSONStringify, JSONParse } from '@/utils';

export const useFile = (targetData) => {
	const beforeUpload = ({ file }) => {
		const type = file.file.type;
		if (type !== 'application/json' && type !== 'text/plain') {
			msgWarning('仅支持上传 【JSON】 格式文件，请重新上传！');
			return false;
		}
		return true;
	};

	// 自定义上传操作
	const customRequest = (options) => {
		const { file } = options;
		nextTick(() => {
			if (file.file) {
				readFile(file.file).then((fileData) => {
					targetData.data = JSONParse(fileData);
				});
			} else {
				msgError('导入数据失败，请稍后重试或联系管理员！');
			}
		});
	};

	// 下载文件
	const download = () => {
		try {
			msgSuccess('下载中，请耐心等待...');
			downloadTextFile(JSONStringify(targetData.data), undefined, 'json');
		} catch (error) {
			msgError('下载失败，数据错误！');
		}
	};
	return {
		beforeUpload,
		customRequest,
		download
	};
};
